/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Mantenimiento_proveedores.java
 *
 * Created on 14/06/2009, 02:02:23 PM
 */
package Mantenimiento;

import Control.ChoosableFileFilter;
import Control.ChoosableFileFilterExcel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import General.Administrador;
import Control.Conexion;
import Control.ExcelTableExporter;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;

/**
 *z
 * @author GAMA
 */
public class Mantenimiento_proveedores extends javax.swing.JPanel {

    JPanel pnlNuevoProveedor;
    Administrador frmAdministrador;
    int bandera = 0;
    Integer codigo_usuario_auditoria = 0;
    JFileChooser guardar, abrir;
    ChoosableFileFilterExcel newChoosableFileFilter = new ChoosableFileFilterExcel();

    /** Creates new form Mantenimiento_proveedores */
    public Mantenimiento_proveedores() {
        initComponents();
         guardar= new JFileChooser();
        abrir= new JFileChooser();
    }

    public Mantenimiento_proveedores(Administrador frmAdministrador, Integer codigo_usuario) {
        initComponents();
        codigo_usuario_auditoria = codigo_usuario;
        this.frmAdministrador = frmAdministrador;
        guardar= new JFileChooser();
        abrir= new JFileChooser();
        cargar_tabla_proveedores();

    }

    public void cargar_tabla_proveedores() {
        Conexion c = new Conexion();
        tblProveedores.setModel(c.cargar_proveedores_tabla());
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblProveedores = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();

        setLayout(null);

        jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Registrar16.gif"))); // NOI18N
        jButton1.setMnemonic('r');
        jButton1.setText("Registrar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        add(jButton1);
        jButton1.setBounds(30, 90, 130, 30);

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Modificar16.gif"))); // NOI18N
        jButton2.setMnemonic('m');
        jButton2.setText("Modificar ");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        add(jButton2);
        jButton2.setBounds(190, 90, 130, 30);

        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Eliminar16.gif"))); // NOI18N
        jButton3.setMnemonic('e');
        jButton3.setText("Eliminar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        add(jButton3);
        jButton3.setBounds(350, 90, 120, 30);

        tblProveedores.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Código", "Nombre Corporativo", "Datos Representante", "Teléfono Representante", "Email Representante"
            }
        ));
        jScrollPane1.setViewportView(tblProveedores);

        add(jScrollPane1);
        jScrollPane1.setBounds(30, 130, 700, 230);

        jLabel1.setFont(new java.awt.Font("Arial", 0, 20));
        jLabel1.setForeground(new java.awt.Color(0, 102, 204));
        jLabel1.setText("PROVEEDORES");
        add(jLabel1);
        jLabel1.setBounds(310, 40, 180, 30);

        jButton4.setText("Exportar Excel");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        add(jButton4);
        jButton4.setBounds(490, 90, 120, 30);
    }// </editor-fold>//GEN-END:initComponents

    public void eliminar_proveedor() {
        int cod;
        if (tblProveedores.getSelectedRow() != -1) {
            int rpta = msgmarticuloConfirmacion("¿Esta seguro que desea eliminar la seleccion?");
            if (rpta == 0) {
                cod = Integer.parseInt(tblProveedores.getValueAt(tblProveedores.getSelectedRow(), 0).toString());
                Conexion c = new Conexion();
                c.setMantenimientoProveedores(this);
                c.eliminar_proveedor(codigo_usuario_auditoria, cod);
                this.cargar_tabla_proveedores();

            }

        } else {
            JOptionPane.showMessageDialog(this, "Debe seleccionar un elemento de la tabla", "Información", JOptionPane.WARNING_MESSAGE);
        }


    }

    public void mensaje_error_eliminacion_por_presencia_comprobante_proveedor() {
        JOptionPane.showMessageDialog(this, "El proveedor no puede ser eliminado ya que aparece en los comprobantes", "Información", JOptionPane.WARNING_MESSAGE);

    }

    public int msgmarticuloConfirmacion(String msg) {
        Object[] opciones = {"Si", "No", "Cancelar"};
        int n = JOptionPane.showOptionDialog(this,
                msg,
                "Información",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE,
                null,
                opciones,
                opciones[2]);
        return n;
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        Nuevo_proveedor nuevo_prov = new Nuevo_proveedor(this, 1, codigo_usuario_auditoria);



        pnlNuevoProveedor = nuevo_prov;

        pnlNuevoProveedor.setSize(761, 400);

        frmAdministrador.getPanelContenedor().removeAll();
        frmAdministrador.getPanelContenedor().add(pnlNuevoProveedor);

        pnlNuevoProveedor.repaint();
        pnlNuevoProveedor.setVisible(true);


    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
        bandera = 2;
        int cod;
        if (tblProveedores.getSelectedRow() != -1) {
            cod = Integer.parseInt((String) tblProveedores.getValueAt(tblProveedores.getSelectedRow(), 0));
            this.cargar_proveedor_por_codigo(cod);

        } else {
            JOptionPane.showMessageDialog(this, "Debe seleccionar un elemento de la tabla", "Información", JOptionPane.WARNING_MESSAGE);
        }
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        // TODO add your handling code here:
        this.eliminar_proveedor();
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        // TODO add your handling code here:
    
        try {
            guardar.addChoosableFileFilter(newChoosableFileFilter);
            int returnVal = guardar.showSaveDialog(Mantenimiento_proveedores.this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File archivo = guardar.getSelectedFile();
                file = archivo.getAbsolutePath();


                new ExcelTableExporter(tblProveedores,archivo,"TabNombre").export();

            }
        } catch (Exception e) {

            //System.out.println(e.toString()+"");
            JOptionPane.showMessageDialog(this, "El archivo no se ha podido registrar", "Mensaje del Sistema", 1);
        }
    }//GEN-LAST:event_jButton4ActionPerformed

    public void cargar_proveedor_por_codigo(int codigo) {
        String[] datos;
        Conexion c = new Conexion();
        datos = c.cargar_datos_proveedor(codigo);
        Nuevo_proveedor nuevo_prov = new Nuevo_proveedor(this, bandera, codigo_usuario_auditoria);
        this.pnlNuevoProveedor = nuevo_prov;


        nuevo_prov.setCodigo(Integer.parseInt(datos[0]));
        nuevo_prov.setNombrecorporativo(datos[1]);
        nuevo_prov.setNumeroruc(datos[2]);
        nuevo_prov.setPagina_web(datos[3]);

        nuevo_prov.setNumerofax(datos[4]);
        nuevo_prov.setNombre_representante(datos[5]);
        nuevo_prov.setApellido_paterno(datos[6]);
        nuevo_prov.setApellido_materno(datos[7]);
        nuevo_prov.setTelefono1(datos[8]);
        nuevo_prov.setEmail(datos[9]);


        pnlNuevoProveedor.setSize(761, 400);
        frmAdministrador.getPanelContenedor().removeAll();
        frmAdministrador.getPanelContenedor().add(pnlNuevoProveedor);
        pnlNuevoProveedor.repaint();
        pnlNuevoProveedor.setVisible(true);


    }

    public JPanel getPanelContenedorAdministrador() {
        return frmAdministrador.getPanelContenedor();
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable tblProveedores;
    // End of variables declaration//GEN-END:variables
}
